Data storage devices (DSDs), such as disk drives and solid state drives are employed in numerous areas such as computer systems (e.g., desktops, laptops, portables, etc.) and consumer devices (e.g., music players, cell phones, cameras, etc.). User data is typically stored in a non-volatile memory (NVM), such as a magnetic disk or a non-volatile semiconductor memory (e.g., Flash memory). During read operations, an estimated data sequence is read from the NVM and then decoded in order to correct errors in the estimated data sequence.
In a disk drive, a read channel typically samples the read signal emanating from the head to generate sample values that are equalized into a target response (e.g., a target partial response). A sequence detector detects an estimated data sequence from the equalized samples, and errors in the estimated data sequence are corrected, for example, using an iterative decoder such as a Turbo Code decoder, Low Density Parity Check (LDPC) decoder, or any suitable message passing decoder (a.k.a. belief propagation decoder). In DSDs employing a non-volatile semiconductor memory, the voltage levels read from the memory cells are compared to a threshold in order to generate the estimated data sequence which may be similarly decoded using a suitable iterative decoder (Turbo Code, LDPC, etc.).